Topik kita kali ini adalah Bermain Mikrokontroler dengan menggunakan MicroPython.
Materi bisa diakses di : https://s.id/kSiA7
Pemateri pada topik ini akan dibawakan oleh Ardy Seto Priambodo, S.T., M.Eng.
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments.
doc: http://docs.micropython.org/en/latest/
ESP32 is a series of low-cost, low-power system on a chip microcontrollers with integrated Wi-Fi and dual-mode Bluetooth.
web: https://www.espressif.com/en/products/socs/esp32/overview
Salah satu board yang menggunakan ESP32, lolin32 lite:
sumber: https://docs.conda.io/projects/conda/en/latest/user-guide/install/download.html
saya menggunakan versi minimalis yaitu Miniconda
saya merekomendasikan membuat environment baru dan sekalian menginstall pip pada environment tersebut, untuk conda bisa ketik perintah berikut
> conda create --name micropython
> conda install -c anaconda pip
install jupyter dengan perintah:
> conda install -c anaconda jupyter
install esptool dengan perintah:
> pip install esptool
cek hasil instalasi dengan ketik dan akan muncul versi yang digunakan
> esptool
download bisa dilakukan secara manual dengan klik link atau menggunakan wget dengan perintah:
> wget http://micropython.org/resources/firmware/esp32-idf3-20191220-v1.12.bin
hubungkan ESP32 dengan laptop / komputer via kabel USB dan cek COM yang terdeteksi via device manager
hapus firmware sebelum kita mengupgrade firmware yang lebih baru dengan mengetik:
> esptool.py --chip esp32 erase_flash
kemudian flash firmware yang telah kita download dengan cara ketik (perhatikan COM yang digunakan):
> esptool.py --chip esp32 --port COM9 write_flash -z 0x1000 esp32-idf3-20191220-v1.12.bin
download putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
jalankan dan isi COM yang digunakan serta baudrate 115200 dan klik open untuk membuka koneksi
setelah dijalankan maka akan muncul shell yang mana merupakan dari micropython yang ada pada ESP32
install kernel pada jupyter notebook dengan mengetik:
> git clone https://github.com/goatchurchprime/jupyter_micropython_kernel.git
> pip install -e jupyter_micropython_kernel
> python -m jupyter_micropython_kernel.install
buka jupyter notebook dengan perintah:
> jupyter notebook
# koneksi kernel dari Jupyter MicroPython dengan ESP32
%serialconnect
# print string
print('Bermain MicroPython dengan Jupyter Notebook')
# print int
print(1+2+3+4+5+6+7+8+9)
print(2**100)
string1 = 'belajar '
string2 = 'micropython'
print(string1 + string2)
print(type(123))
print(type('ardy seto'))
list = [3.14, 2.55, 7.23, 5.12]
print(list)
# konfigurasi pin yang digunakan untuk LED
from machine import Pin
from time import sleep
led = Pin(22, Pin.OUT)
# menyalakan led
led.off()
sleep(1)
# mematikan led
led.on()
sleep(1)
def ledBlink():
for i in range(5):
led.on()
print('led off')
sleep(1)
led.off()
print('led on')
sleep(1)
ledBlink()
# konfigurasi pin RGB
blue = Pin(18, Pin.OUT)
green = Pin(19, Pin.OUT)
red = Pin(23, Pin.OUT)
# menyalakan led BLUE
blue.on()
sleep(1)
# mematikan led BLUE
blue.off()
sleep(1)
# menyalakan led GREEN
green.on()
sleep(1)
# mematikan led GREEN
green.off()
sleep(1)
# menyalakan led RED
red.on()
sleep(1)
# mematikan led RED
red.off()
sleep(1)
def discoLed():
print('Disco Led')
for i in range(10):
green.on()
sleep(0.25)
blue.on()
sleep(0.25)
red.on()
blue.off()
sleep(0.25)
green.off()
blue.on()
red.off()
sleep(0.25)
red.on()
sleep(0.25)
green.off()
blue.off()
red.off()
discoLed()
# konfigurasi sensor DHT11
import dht
sensor = dht.DHT11(Pin(15))
sleep(1)
sensor.measure()
# baca temperature
sleep(1)
print(str(sensor.temperature()) + '*C')
# baca kelembaban
sleep(1)
print(str(sensor.humidity()) + '%')
def bacaSensor():
sleep(1)
t = sensor.temperature()
h = sensor.humidity()
print('temperature malam ini:', t, '*C dan kelembaban:', h, '%')
bacaSensor()